package com.rockwell.sniffyhunter.utils;

import com.rockwell.sniffyhunter.model.PickTreasure;

public enum PickTreasureState implements IStateMachine {
	START {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Start actions");
			return ((PickTreasure)stateObject).start();
		}
	},
	LOWER_PICK_ARM {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Lower Pick Arm actions");
			return ((PickTreasure)stateObject).LowerPickArm();
		}
	},
	INDEX {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Index actions");
			return ((PickTreasure)stateObject).Index();
		}
	},
	PICK_UP {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Pick Up actions");
			return ((PickTreasure)stateObject).PickUp();
		}
	},
	MOVE_BACK {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Move Back actions");
			return ((PickTreasure)stateObject).MoveBack();
		}
	},
	CHECK_PICKED {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Check Picked actions");
			return ((PickTreasure)stateObject).CheckPicked();
		}
	},
	ARM_UP_AFTER_PICK {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Check Picked actions");
			return ((PickTreasure)stateObject).armUpAfterPick();
		}
	},
	ENSURE_ARM_UP_AFTER_PICK {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Check Picked actions");
			return ((PickTreasure)stateObject).ensureArmUpAfterPick();
		}
	},
	DONE {
		@Override
		public
		IStateMachine doAction(IStateObject stateObject) {
			System.out.println("Pick_PickTreasureState> Perform Done actions");
			return START;
		}
	};
}
